Spring boot 3.4中 如何配置多MongoDB个带有用户名和密码的连接

您所在的位置:网站首页 springboot版本和springdata mongodb Spring boot 3.4中 如何配置多MongoDB个带有用户名和密码的连接

Spring boot 3.4中 如何配置多MongoDB个带有用户名和密码的连接

2023-04-26 00:03| 来源: 网络整理| 查看: 265

在Spring Boot 2.4及以上版本中,可以使用Spring Data MongoDB的新特性来配置多个MongoDB连接,其中每个连接都有自己的用户名和密码。

以下是一个示例配置:

在application.properties中配置:

# 第一个MongoDB连接 spring.data.mongodb.uri=mongodb://localhost:27017/mydb spring.data.mongodb.authentication-database=admin spring.data.mongodb.username=myuser1 spring.data.mongodb.password=mypassword1 # 第二个MongoDB连接 myapp.mongo.uri=mongodb://localhost:27018/mydb myapp.mongo.authentication-database=admin myapp.mongo.username=myuser2 myapp.mongo.password=mypassword2

在Java类中配置:

@Configuration public class MongoConfig { @Bean @Primary // 标注为默认的MongoTemplate public MongoTemplate mongoTemplate1(MongoClientFactoryBean mongoClientFactoryBean) { return new MongoTemplate(mongoClientFactoryBean.getObject(), "mydb"); } @Bean(name = "mongoTemplate2") public MongoTemplate mongoTemplate2(MongoClientFactoryBean mongoClientFactoryBean) { return new MongoTemplate(mongoClientFactoryBean.getObject(), "mydb"); } @Bean @ConfigurationProperties(prefix = "spring.data.mongodb") public MongoClientFactoryBean mongoClientFactoryBean1() { return new MongoClientFactoryBean(); } @Bean @ConfigurationProperties(prefix = "myapp.mongo") public MongoClientFactoryBean mongoClientFactoryBean2() { return new MongoClientFactoryBean(); } }

上述代码中,我们使用@ConfigurationProperties注解将每个MongoDB连接的配置属性注入到mongoClientFactoryBean1和mongoClientFactoryBean2实例中。

在mongoTemplate1和mongoTemplate2实例中,我们分别将它们的MongoClientFactoryBean实例传递给MongoTemplate的构造函数,并定义了不同的数据库名称和实例名称。

注意:在使用多个MongoDB连接时,需要将其中一个MongoTemplate实例标注为@Primary,以确保Spring Boot能够找到默认的MongoTemplate实例。其余的MongoTemplate实例需要指定名称,以便在需要的时候能够精确地引用它们。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3